עד לפי היום הייתי כותב אינטרפייסים בצורה שתמיד הייתי כותב אותם
בדיוק כמו בדוקומנטציה.

interface IWeird
{
    public function doSomething($x);
}



היום פעם ראשונה עצרתי להבין למה משמשת כאן המילה public
וגם כל הדוגמאות בדוקומנטציה באות עם המודיפיקטור public.

http://php.net/manual/en/language.oop5.interfaces.php

למה משמש המודיפיקטור public באינטרפייסים?

4 תשובות

avatar ענה OrelBeY ב 30 למרץ 2013 #

הדוקומנטציה מצהירה:

All methods declared in an interface must be public, this is the nature of an interface.

המטרה של אינטרפייס זה לדעת (או לתכנן, בייחוד כשאתה עובד עם אנשים אחרים) את הפונקציונליות של מחלקה(ות) בתור מישהו שמסתכל מבחוץ. לא אכפת לך מה קורה בתוך המחלקה. כל מה שאתה רוצה זה דברים שאתה יכול לעשות אִתה. זו הסיבה שאפשר להשתמש רק ב-public.

avatar ענה Cayce ב 30 למרץ 2013 #

אלכס שאל אם זה תמיד public, אז למה בכלל לרשום, הרי לא יכול להיות משהו אחר. כנראה האינטרפייס ככה נראה יותר קריא, לא מצאתי סיבה אחרת :) בכל מקרה אתה לא חייב לרשום, וגם בשאר השפות זה ככה, לא רק PHP.

avatar ענה intval ב 30 למרץ 2013 #

ברור שהן public, הרי שלא יכול להיות שום דבר אחר באינטרפייס.
בשפות אחרות אתה מקבל שגיאה אם אתה בכל זאת מנסה לציין access modificator בתוך אינטרפייס.
ובדוקומנטציה מביאים בפירוש דוגמאות עם

avatar ענה OrelBeY ב 30 למרץ 2013 #

אה, טעות שלי. אני אשאיר את זה בכל מקרה, יכול להיות שיעזור למישהו.
בקשר לשאלה המקורית - זה באמת מוזר. לא מצאתי תשובה.